package com.dy.lock.screen.dao;

import java.io.Serializable;
import java.util.List;
import java.util.Map;

public interface BaseDao<T, PK extends Serializable>{
	/**
	 * 生成主键
	 * @param seqName
	 * @return
	 */
	public String getPrimaryKey() ;
	/**
	 * 根据sequence得到自增
	 * @param seqName
	 * @return
	 */
	public Long getNext() ;
	/**
	 * 根据主键查询
	 * @param t
	 * @return
	 */
	public T queryByPrimaryKey(T t) ;
	/**
	 * 获取namespace
	 * @return
	 */
	public String getQueryNamespace() ;
	
	public int delete(T t) ;
	
	public int update(T t) ;
	
	public int insert(T t) ;
	/**
	 * 分页查询
	 * @param paramMap
	 * @return
	 */
	public List<T> queryT(Map<String,Object> paramMap) ;
	/**
	 * 有关联查询时分页查询
	 * @param paramMap
	 * @return
	 */
	public List<Map<String,Object>> queryMap(Map<String,Object> paramMap) ;
	/**
	 * 查询记录数
	 * @param paramMap
	 * @return
	 */
	public Integer queryCount(Map<String,Object> paramMap) ;
	/**
	 * 不分页
	 * @param t
	 * @return
	 */
	public List<T> query(Map<String,Object> paramMap) ;
	
	public List<T> query() ;
}
